iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0

Day 16 認識 M1 卡的存取權限

接下來我們要來認識規則比較複雜的「區段存取控制位元」。如果想偷懶,可以直接找線上工具來產生 (搜尋 MIFARE Classic 1K Access Bits Calculator 就能找到)。

每個資料區塊及區段尾端區塊的存取權限,都是透過 3 個存取控制位元 (bit) 來表示,存取控制位元會以一份原始資料與一份反相後的資料存在「區段尾端區塊」內。

存取控制位元可以用來控制 Key A 及 Key B 的記憶體存取權限,可以透過正確的金鑰及存取權限來修改。如果存取控制位元有誤,整個區段就會發生不可逆的拒絕存取 (俗稱變磚)。

資料區塊的存取權限表 (Access conditions for data blocks)

取出代表該「資料區塊」的 3 個存取控制位元後,就可以透過查表來確認 Key A 及 Key B 能進行的記憶體操作:

需要特別注意的是,如果 Key B 被視為普通資料時,無法用來進行「資料區塊」及「區段尾端區塊」的記憶體操作。

區段尾端區塊的存取權限表 (Access conditions for the sector trailer)

取出代表「區段尾端區塊」的 3 個存取控制位元後,就可以透過查表來確認 Key A 及 Key B 能進行的記憶體操作:

需要特別注意的是,如果 Key B 被視為普通資料時,無法用來進行「資料區塊」及「區段尾端區塊」的記憶體操作。

區段存取控制位元範例:FF078069

FF078069 先轉成二進位:

1111 1111
0000 0111
1000 0000
0110 1001

接下來就可以透過查表,來轉換每個區塊的存取權限如下:


上一篇
Day 15 認識 M1 卡的資料結構
下一篇
Day 17 讀取 M1 卡片的資料
系列文
免安裝!一起用 JS 來控制開源的 NFC 讀卡機變色龍吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言